#include "Key.h"


uint8_t KeyNum[4] = {0};


// 函数来判断第position位的值
int getPinValue(uint32_t number, int position) 
{
    return (number >> (position - 1)) & 1;
}


uint8_t KEY_Julge(GPIO_Regs* KEY_Port, uint32_t KEY_Pin)
{
//	//如果引脚为低电平
//	if( DL_GPIO_readPins(KEY_Port, KEY_Pin) == 0 )
//	{
		delay_ms_nonblocking(50);
//		delay_ms(25);
//		delay_ms_timer(50);
		if( DL_GPIO_readPins(KEY_Port, KEY_Pin) == 0 )
			return 1;
//	}
	return 0;
}


void KEY_Julge_4(void)
{
	if(KEY_Julge(KEY1_Port, KEY1_Pin))
	{
		KeyNum[0]++;
	}
	else if(KEY_Julge(KEY2_Port, KEY2_Pin))
	{
		KeyNum[1]++;
	}
	else if(KEY_Julge(KEY3_Port, KEY3_Pin))
	{
		KeyNum[2]++;
	}
	else if(KEY_Julge(KEY4_Port, KEY4_Pin))
	{
		KeyNum[3]++;
	}
}


//void GROUP1_IRQHandler(void)	//Group1的中断服务函数
//{
//    //读取Group1的中断寄存器并清除中断标志位
//    switch( DL_Interrupt_getPendingGroup(DL_INTERRUPT_GROUP_1) )
//    {
//        //检查是否是KEY的GPIOA端口中断，注意是INT_IIDX，不是PIN_18_IIDX
//        case KEY1_INT_IIDX:
//			KEY_Flag = KEY_Julge(KEY1_Port, KEY1_Pin);
//            //如果按键按下变为高电平
//            if( KEY_Flag == 1 )
////                DL_GPIO_togglePins(GPIO_GRP_0_PORT, GPIO_GRP_0_LED1_PIN);

//		case KEY3_PIN_22_IIDX:
//			KEY_Flag = KEY_Julge(KEY3_Port, KEY3_Pin);

//        break;
//    }
//}		